package com.egoo.ticket.server.service;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.egoo.ticket.server.pojo.dto.SysOptLogDto;
import com.egoo.ticket.server.pojo.dto.SystemMsgDto;
import com.egoo.ticket.server.utils.common.DbResponse;

import java.util.List;

/**
 * @author：victor_tang
 * @Date ：2020/2/19
 * @Description：ERIP数据同步
 */
public interface EripDataSynService {
	/**
	 * TODO 同步用户及用户角色权限信息
	 * @author: victor_tang
	 * @createtime: 2020/2/26 12:41
	 * @param user 1
	 * @return: com.egoo.ews.service.utils.DBResponse
	 */
	public DbResponse userDataSyn(String user);


	/**
	 * TODO 同步角色信息
	 * @author: victor_tang
	 * @createtime: 2020/2/26 12:41
	 * @param role 1
	 * @return: com.egoo.ews.service.utils.DBResponse
	 */
	public DbResponse roleDataSyn(String role);

	/**
	 * TODO 同步部门信息
	 * @author: victor_tang
	 * @createtime: 2020/3/17 12:17
	 * @param dept 1
	 * @return: com.egoo.ews.service.utils.DBResponse
	 */
	public DbResponse deptDataSyn(String dept);
	/**
	 * TODO 获取用户权限列表
	 * @author: victor_tang
	 * @createtime: 2020/3/10 18:22
	 * @param tenantId 1
	 * @param userId 2
	 * @return: com.egoo.ews.service.utils.DBResponse
	 */
	public DbResponse getUserPermissionsList(String tenantId, String userId);

	/**
	 * TODO 获取系统所有角色信息
	 * @author: victor_tang
	 * @createtime: 2020/2/26 12:40
	 * @param
	 * @return: java.lang.String
	 */
	public String getAllRole();

	/**
	 * TODO 获取系统所有用户信息
	 * @author: victor_tang
	 * @createtime: 2020/2/26 12:40
	 * @param
	 * @return: java.lang.String
	 */
	public String getAllUser();
//	/**
//	 * TODO 获取产品型号信息列表
//	 * @author: victor_tang
//	 * @createtime: 2020/2/26 12:41
//	 * @param productModelInfoDto
//	 * @return: com.egoo.ews.service.utils.DBesponse
//	 */
//	public DbResponse getProductModelList(ProductModelInfoDto productModelInfoDto);
	/**
	 * TODO 获取业务分类信息列表
	 * @author: victor_tang
	 * @createtime: 2020/3/17 12:56
	 * @param
	 * @return: com.egoo.ews.service.utils.DBResponse
	 */
	public DbResponse getBusinesTypeList();
	/**
	 * TODO 获取短信模板信息(催办)
	 * @author: victor_tang
	 * @createtime: 2020/2/26 12:39
	 * @param
	 * @return: com.alibaba.fastjson.JSONArray
	 */
	public JSONArray getMsgTemplate();

	/**
	 * TODO 获取短信模板信息（回访）
	 * @author: victor_tang
	 * @createtime: 2020/3/22 16:01
	 * @param
	 * @return: com.alibaba.fastjson.JSONArray
	 */
	public JSONArray getTemplate();

	/**
	 * TODO:TODO 根据过滤条件获取短信模板（回访）
	 * @param filterCondition
	 * @return
	 */
	public JSONArray getTemplateByFilterCondition(JSONObject filterCondition);

	/**
	 * TODO 发送短信
	 * @author: victor_tang
	 * @createtime: 2020/3/18 20:46
	 * @param jsonObject 1
	 * @return: com.egoo.ews.service.utils.DBResponse
	 */
	public DbResponse sendMsg(JSONObject jsonObject);
	/**
	 * TODO 发送系统消息
	 * @author: victor_tang
	 * @createtime: 2020/2/26 12:39
	 * @param systemMsgDto 1
	 * @return: java.lang.String
	 */
	public DbResponse sendSystemMsg(SystemMsgDto systemMsgDto);

	/**
	 * TODO 获取在线客服工作时间段
	 * @author: victor_tang
	 * @createtime: 2020/2/26 12:37
	 * @param
	 * @return: java.utils.List<java.lang.String>
	 */
	public List<String> getWorkTimeList();


	/**
	 * TODO 调取工作台记录操作日志接口
	 * @author: victor_tang
	 * @createtime: 2020/3/18 20:46
	 * @param sysOptLogDto
	 * @return: com.egoo.ews.service.utils.DBResponse
	 */
	public DbResponse recordSysOptLog(SysOptLogDto sysOptLogDto);

	/**
	 * TODO: 转出接口调用
	 * @return
	 * @param flowOutUrl
	 * @param jsonObject
	 * @param httpHeader
	 */
	JSONObject externalWorkOrderFlowOut(String flowOutUrl, JSONObject jsonObject, JSONObject httpHeader);

	/**
	 * 获取休息日
	 * @return
	 */
    List<String> getRestDay();

	/**
	 *
	 * 发送回访邮件
	 * @param systemMsgDto
	 * @return
	 */
	DbResponse sendRevisitEmail(SystemMsgDto<List> systemMsgDto);

	/**
	 * 邮件服务器
     * @param systemMsgDto
     */
	public String sendEmail(SystemMsgDto<List> systemMsgDto);

	/**
	 * 获取工作台主题色
	 * @param tenantId
	 * @return
	 */
    DbResponse getMajorColor(String tenantId);

    JSONObject pushWorkOrderInfo(JSONObject jsonObject);
}
